Structured Concurrency
継続の話からライフタイムの話に繋がるのかmrsekut.icon
Swiftにあるらしい
GPT-4.icon
Structured concurrency は、コンピュータプログラムの明瞭さ、品質、および開発時間を向上させるためのプログラミングパラダイムです。このアプローチは、並行プログラミングに構造化されたアプローチを使用します。
その主要な概念は、明確な入口と出口のポイントを持つ制御フロー構造によって並行スレッドの実行(ここではカーネルとユーザーランドのスレッドおよびプロセスを含む)をカプセル化することです。このカプセル化により、並行スレッドのエラーが制御構造の親スコープに伝播され、各特定のコンピュータ言語のネイティブなエラー処理メカニズムによって管理されます。このモデルを効果的に使用するためには、プログラムのすべてのレベルで一貫して適用する必要があります。
Structured concurrencyは、連続的なステートメントとサブルーチンをカプセル化した制御フロー構造を導入した構造化プログラミングに類似しています。
歴史的には、1960年代のfork–joinモデルやOpenMPのようなマルチプロセッシングツールは、すべてのスレッドが終了する前にシステムが確実に完了することを保証する初期の例です。この概念は、2016年にMartin Sústrikによってフォーミュレートされ、後にNathaniel J. Smithによってさらに洗練されました。2021年には、Swiftが構造化並行性を採用し、その後Javaにも追加するためのドラフト提案が公開されました。